The present invention relates generally to software training systems. More particularly, the invention relates to a universal software training and testing system which identifies the trainee's weaknesses and provides step-by-step instructions, complete with graphical display that demonstrates the manner an experienced user will execute cursor movements and operating steps to perform a software function in actual use of the program.
There is a large number of computer software applications in popular use today. Examples include word processing programs, spreadsheet programs, drawing programs, financial accounting programs, and the like. Many of these programs are mass marketed and are frequently updated, at least once a year.
This presents a practical problem for many users. Learning a software application takes time. Some users are reluctant to upgrade to a new software application version, if it will mean having to relearn what they already know how to do. The motivation for upgrading to a new version is usually to gain added features. Regardless of the motivation, however, when a user upgrades to a new version of a software application, he or she typically must learn the new features as well as any changes made to existing features. While users' manuals and aftermarket books can help the user get over the learning curve, many users do not enjoy looking up things in books. Indeed, some users are loath to open a software users' manual.
Grappling with the training issue is particularly important for the temporary service industry. Temporary service agencies provide employees on a part-time basis to businesses which need temporary help. The temporary employee needs to be trained in advance, so that he or she is fluent in the software applications used by the temporary employer. The Applicant's Assignee has done a considerable amount of work in this area and has discovered that automated training and testing systems can be more effective for training its employees for the tasks they will encounter on the job. In addition, automated systems can also provide a testing function. The Users' skills can be evaluated and a report generated, for use in selecting persons who best qualify for a particular job assignment.
Many conventional automated training systems are nothing more than simulators. These are applications which simulate the user interface and software application functions of a given software application program. Being a simulation, however, the actual software application is not actually being run. Using a simulation training system, the trainee is taken through a series of tests, and the training program records the results. Some simulation programs also provide a few preplanned demonstrations on particular software application features. For example, a preplanned demonstration might show the user how to create a chart in a spreadsheet program. The demonstration, however, is not an actual demonstration of the software application in execution, but rather merely a series of graphical displays designed to give the appearance of the software application in actual operation.
One problem with simulation training programs is that they are difficult to keep up to date. As noted above, mass marketed software applications are frequently updated. This means that each time that the application is updated, a new simulation program may need to be constructed. The problem is further heightened by the occasional interim release upgrade, distributed by the software application manufacturer to correct a bug. Due to the time required to construct accurate simulation programs, it is not often practical to maintain the simulation program in synchronization with the software application which it is designed to mimic.
Additionally, many popular application programs, such as word processing programs, have evolved in such a way as to enable a user to perform a given task in a variety of different ways. However, it is impractical for simulation training programs to accurately simulate every alternative capability of such application programs Thus, for example, even though a particular function can be performed with an application program in any of five different ways, the simulation program may only simulate one or two. Consequently, the proficiency skills of a user that has learned to perform this function in a way that is different from that selected by the simulation program will be incorrectly evaluated.
Although not designed for training, some software applications are provided with a "wizard" feature that can assist a user in performing a function that the user is unfamiliar with. The wizard asks the user a series of questions about the desired end result (e.g., what the spreadsheet chart should look like), and then the wizard performs the necessary operations, typically instantaneously. Although the wizard helps the user get the job done, it does not teach the user how to perform the necessary tasks, since it performs the tasks for the user at high speed. Thus, rather than learning how to use the various features of the software application, the user simply learns to turn to the wizard in all cases. Accordingly, the wizard feature is not suitable for testing and training a user in the operation of a software application.
The present invention provides a universal automated training and testing system that overcomes the deficiencies of simulation training systems. Unlike conventional training and testing systems, the present invention poses a question to the trainee and gives the trainee an opportunity to answer the question. In this way, the training and testing system puts the trainee in the proper frame of mind to learn. The training and testing system then checks the trainee's answer and gives the trainee a "show-me" option that will display instructional text combined with on screen cursor movements to simulate the way an experienced user would answer the posed question. Preferably the show-me feature presents an alternating sequence of textual instructions and cursor movements, so that the trainee learns by both reading and watching.
Being a universal system, the training and testing system of the invention is readily adapted to virtually any software application. In contrast with simulation training systems, the present universal automated training and testing system is adapted to a new software application quite easily and economically. This is in part due to the fact that the system of the invention runs concurrently with the software application which it is designed to test and train. Unlike the wizard feature of a software application, the training and testing system of the invention shows the user how to perform application functions by breaking those functions into bite-sized steps. The training and testing system actually controls the user interface of the software application causing it to perform the desired function step-by-step. The training and testing system also controls the user interface of the software application to supply actual mouse movement and keyboard entry information, at a speed which simulates the manner a user would execute those cursor movement and keyboard operations. In this way, the training and testing system takes control of the software application and performs the proper sequence of operations right before the user's eyes.
According to one aspect of the invention, the universal automated training and testing system of the invention provides a much improved way for training a user to use a software application. Although the invention can be used to test and train users to operate software applications employing only keyboard entry devices, the invention also will test and train in the use of software applications employing a pointing device, such as a mouse, for producing a device-directed screen cursor. The automated training and testing system will test the user's skills in the software application and provide a "show-me" capability to assist the trainee in learning a new function once the program has identified a feature which the trainee is unsure of.
The training and testing system of the invention comprises a run-time module adapted for running concurrently and interactively with the software application. A test question generator is associated with the run-time module. It generates a plurality of textually displayed questions designed to test the user's skills in using different aspects of the software application. A Show-Me button, associated with the run-time module and also with the test question generator, is actuable by the user to generate a trigger event within the run-time module. The run-time module includes a Show-Me display generator that is responsive to the trigger event. The display generator produces the following messages:
(a) A textually displayed instructional message, keyed to the question being displayed, for informing the user on how to perform a particular task with the application program; and PA1 (b) a cursor movement message.
The cursor movement message causes the screen cursor to move to predetermined locations on the display screen and further causes the application program to execute at least one operating step. In this way, the run-time module simulates the manner a user would execute the cursor movements and operating steps in actual use of the application program.